1. Technical Field
This application relates generally to computer systems, and more particularly to performing remote system calls in a computer system.
2. Description of Related Art
Computer systems may include different resources that may be used by one or more processors. Resources and processors in a computer system may be interconnected by one or more communication connections. These resources may include, for example, data storage devices such as the Symmetrix family of data storage systems manufactured by EMC Corporation. These data storage systems may be coupled to one or more processors and provide storage services to each processor. An example data storage system may include one or more data storage devices, such as those of the Symmetrix family, that are connected together and may be used to provide common data storage for one or more processors in a computer system.
A processor may perform a variety of data processing tasks and operations using the data storage system. For example, a processor may perform basic system I/O operations, such as data read and write operations and also administrative tasks, such as data backup and mirroring operations. In performing any one of the foregoing operations, the processor may use one or more system calls in which the processor making the system call instructs a data storage device to perform a particular operation.
In some data storage device arrangements, a first data storage device may be connected to a second data storage device and a processor may only be able to send commands to the second data storage device indirectly using the first data storage device. In other words, the processor only has a direct connection to the first data storage device, and an indirect connection to the second data storage device. If the processor wishes to instruct the second data storage device to perform a data operation, the processor may use a remote system call using the first data storage device. The processor may issue a remote procedure call to the first data storage device which instructs the second data storage device to perform a data operation, for example.
A problem may exist in a data storage device arrangement that includes another level of indirect data storage devices. For example, in addition to the previously described data storage device arrangement of a first and a second data storage devices, a third data storage device may be connected to the second data storage device. In some applications, a processor may need to instruct the third data storage device to perform data operations. If the processor has a direct connection only to the first data storage device, remote system calls may be used to instruct the second data storage device to perform data operations, and system calls may be used to instruct the first data storage device to perform data operations. However, in the foregoing arrangement for the processor to instruct the third data storage device to perform a data operation may require such instructions pass through an indirect connection of the first and second data storage devices. There is no way for the processor to so instruct the third data storage device using system calls or remote procedure calls due to the additional storage device layering in the data storage device arrangement. Generally, similar problems may exist in data storage device arrangements that also include more than the foregoing three levels of indirect data storage device access from a processor.
Thus, it may be advantageous to provide a technique for the processor to perform data operations in data storage arrangements that include three or more levels of indirect data storage device access.
In accordance with one aspect of the invention is a method executed on a first data storage device for processing a data operation request. It is determined whether a data operation request is a multihop system call. In response to determining that the data operation is a multihop system call, a first portion of data is removed. The first portion of data is associated with the data operation request. In response to determining that the data operation is a multihop system call, a second portion of the data is forwarded to a second data storage device wherein the second data storage device interprets the second portion and further determines if the second portion is a data operation request for a multihop system call.
In accordance with another aspect of the invention is a computer system that includes a host initiating a data operation request and at least three data storage devices. Each of the data storage devices includes machine executable code for receiving and interpreting the data operation request, determining if the data operation request is a multihop system call, removing a first portion of data associated with the data operation request if the data operation request is a multihop system call, and forwarding, in response to determining that the data operation is a multihop system call, a second portion of the data associated with the data operation request to another data storage device.
In accordance with yet another aspect of the invention is a computer system that includes at least one host system and a plurality of data storage devices interconnected and also connected to the at least one host system. Each of the plurality of data storage devices includes machine executable code for classifying a data operation as one of: a system call, a remote system call, and a multihop system call, if a data operation is classified as a multihop system call by a first of the plurality of data storage devices, removing a portion of the data associated with the multihop system call, and forwarding a second portion of the data to a second of said data storage devices as specified by a connection identifier included in the first portion, where the machine executable code for removing a first portion and forwarding a second portion included in each of the data storage devices forms a recursive process until one of the plurality of data storage device receives a second portion that is interpreted as either a system call or a remote system call.
In accordance with another aspect of the present invention, a data storage device, includes means for determining whether a data operation request is a multihop system call, means for removing a first portion of data associated with the data operation request in response to determining that the data operation is a multihop system call, and means for forwarding a second portion of the data associated with the data operation request to an other data storage device in response to determining that the data operation is a multihop system call, where the other data storage device interprets the second portion and further determines if the second portion is a data operation request for a multihop system call. The data storage device may also include means for determining whether the data operation is one of a system call and a remote system call. A system call may direct the data storage device to respond to the data operation request. The first portion may include a connection identifier identifying a communication connection between the first and the second data storage devices.